<template>
  <div class="page_root" :key="queryUpdateFlag" data-page-name="编辑项目审批详情-通用" data-page-identification="t_0qmx2r0fpk">
    <a-spin :spinning="pageLoading.loading" :tip="pageLoading.tip">
      <!-- begin vid_62olged3y7 容器_184zbiogl2 -->
      <al-box class="vid_62olged3y7">
        <!-- begin vid_yyfck5bxnk 容器_fi74cupfju -->
        <al-box class="vid_yyfck5bxnk">
          <!-- begin vid_xx40tochgv 容器_xp8roexpjb -->
          <al-box class="vid_xx40tochgv">
            <!-- begin vid_4jgr4uuzlq 项目审批详情 -->
            <span class="vid_4jgr4uuzlq"> 项目审批详情 </span>
            <!-- end vid_4jgr4uuzlq 项目审批详情 -->
          </al-box>
          <!-- end vid_xx40tochgv 容器_xp8roexpjb -->
          <!-- begin vid_dcjlk6hy6e 容器_duvquzk4v8 -->
          <al-box class="vid_dcjlk6hy6e">
            <!-- begin vid_dgxr8yy6g6 审批类型： -->
            <span class="vid_dgxr8yy6g6"> 审批类型： </span>
            <!-- end vid_dgxr8yy6g6 审批类型： -->
            <!-- begin vid_6ttysl44kc 创建项目 -->
            <span class="vid_6ttysl44kc">
              {{ renderStringInTemplate(vid_6ttysl44kc_props.rt_text) }}
            </span>
            <!-- end vid_6ttysl44kc 创建项目 -->
          </al-box>
          <!-- end vid_dcjlk6hy6e 容器_duvquzk4v8 -->
          <!-- begin vid_f6qkr3jz3o 容器_5dk41vfvev -->
          <al-box class="vid_f6qkr3jz3o">
            <!-- begin vid_w7rumc3uiw 项目名称： -->
            <span class="vid_w7rumc3uiw"> 项目名称： </span>
            <!-- end vid_w7rumc3uiw 项目名称： -->
            <!-- begin vid_ti4ei79bia 项目名称xxxxxxxx -->
            <span class="vid_ti4ei79bia">
              {{ renderStringInTemplate(vid_ti4ei79bia_props.rt_text) }}
            </span>
            <!-- end vid_ti4ei79bia 项目名称xxxxxxxx -->
          </al-box>
          <!-- end vid_f6qkr3jz3o 容器_5dk41vfvev -->
          <!-- begin vid_mu65ilv37p 布局容器_7dqvff1iep -->
          <a-row class="vid_mu65ilv37p" :gutter="16" :slots="'6:6:12'">
            <a-col :span="6">
              <!-- begin vid_4eipq32dux 项目优先级： -->
              <span class="vid_4eipq32dux"> 项目优先级： </span>
              <!-- end vid_4eipq32dux 项目优先级： -->
              <!-- begin vid_397qdux4m9 简单文本_s0aex6uxjj -->
              <span class="vid_397qdux4m9">
                {{ renderStringInTemplate(vid_397qdux4m9_props.rt_text) }}
              </span>
              <!-- end vid_397qdux4m9 简单文本_s0aex6uxjj -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_62csascnvm 项目代号： -->
              <span class="vid_62csascnvm"> 项目代号： </span>
              <!-- end vid_62csascnvm 项目代号： -->
              <!-- begin vid_bvvbenzf97 简单文本_vik50h55nr -->
              <span class="vid_bvvbenzf97">
                {{ renderStringInTemplate(vid_bvvbenzf97_props.rt_text) }}
              </span>
              <!-- end vid_bvvbenzf97 简单文本_vik50h55nr -->
            </a-col>
            <a-col :span="12">
              <!-- begin vid_8tug59hbzy 项目执行人： -->
              <span class="vid_8tug59hbzy"> 项目执行人： </span>
              <!-- end vid_8tug59hbzy 项目执行人： -->
              <!-- begin vid_0wb2ge9h1r 简单文本_uwaqfvopcj -->
              <span class="vid_0wb2ge9h1r">
                {{ renderStringInTemplate(vid_0wb2ge9h1r_props.rt_text) }}
              </span>
              <!-- end vid_0wb2ge9h1r 简单文本_uwaqfvopcj -->
            </a-col>
          </a-row>
          <!-- end vid_mu65ilv37p 布局容器_7dqvff1iep -->
          <!-- begin vid_my8iyte2uf 容器_y737t87y1v -->
          <al-box class="vid_my8iyte2uf">
            <!-- begin vid_w6gh74x0r5 项目领导小组 -->
            <span class="vid_w6gh74x0r5"> 项目领导小组 </span>
            <!-- end vid_w6gh74x0r5 项目领导小组 -->
          </al-box>
          <!-- end vid_my8iyte2uf 容器_y737t87y1v -->
          <!-- begin vid_4f1zmgdji2 容器_oxhiwuuc4m -->
          <al-box class="vid_4f1zmgdji2">
            <!-- begin vid_j9zaqz7y79 副总裁： -->
            <span class="vid_j9zaqz7y79"> 副总裁： </span>
            <!-- end vid_j9zaqz7y79 副总裁： -->
            <!-- begin vid_zi5g5tyu7w 简单文本_oqt0hnndow -->
            <span class="vid_zi5g5tyu7w">
              {{ renderStringInTemplate(vid_zi5g5tyu7w_props.rt_text) }}
            </span>
            <!-- end vid_zi5g5tyu7w 简单文本_oqt0hnndow -->
          </al-box>
          <!-- end vid_4f1zmgdji2 容器_oxhiwuuc4m -->
          <!-- begin vid_i0mpwjebyk 容器_kfktpgv8t9 -->
          <al-box class="vid_i0mpwjebyk">
            <!-- begin vid_0d4vrdg5hv 项目负责人 -->
            <span class="vid_0d4vrdg5hv"> 项目负责人 </span>
            <!-- end vid_0d4vrdg5hv 项目负责人 -->
          </al-box>
          <!-- end vid_i0mpwjebyk 容器_kfktpgv8t9 -->
          <!-- begin vid_y3mhnzfohy 布局容器_lnoerahl9d -->
          <a-row class="vid_y3mhnzfohy" :gutter="16" :slots="'6:6:6:6'">
            <a-col :span="6">
              <!-- begin vid_71jceso1xn 项目总监： -->
              <span class="vid_71jceso1xn"> 项目总监： </span>
              <!-- end vid_71jceso1xn 项目总监： -->
              <!-- begin vid_q4d1mt1gqv 简单文本_q04za9lk2n -->
              <span class="vid_q4d1mt1gqv">
                {{ renderStringInTemplate(vid_q4d1mt1gqv_props.rt_text) }}
              </span>
              <!-- end vid_q4d1mt1gqv 简单文本_q04za9lk2n -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_7gut4w6lbb PMO： -->
              <span class="vid_7gut4w6lbb"> PMO： </span>
              <!-- end vid_7gut4w6lbb PMO： -->
              <!-- begin vid_uyztrpdycb 文本 -->
              <span class="vid_uyztrpdycb">
                {{ renderStringInTemplate(vid_uyztrpdycb_props.rt_text) }}
              </span>
              <!-- end vid_uyztrpdycb 文本 -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_15sym5unke 项目经理： -->
              <span class="vid_15sym5unke"> 项目经理： </span>
              <!-- end vid_15sym5unke 项目经理： -->
              <!-- begin vid_gzv1erfqnp 时光 -->
              <span class="vid_gzv1erfqnp">
                {{ renderStringInTemplate(vid_gzv1erfqnp_props.rt_text) }}
              </span>
              <!-- end vid_gzv1erfqnp 时光 -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_5343m59c2o 客户满意中心负责人： -->
              <span class="vid_5343m59c2o"> 客户满意中心负责人： </span>
              <!-- end vid_5343m59c2o 客户满意中心负责人： -->
              <!-- begin vid_qhpxcp4j2j 简单文本_7f7njdtnb0 -->
              <span class="vid_qhpxcp4j2j">
                {{ renderStringInTemplate(vid_qhpxcp4j2j_props.rt_text) }}
              </span>
              <!-- end vid_qhpxcp4j2j 简单文本_7f7njdtnb0 -->
            </a-col>
          </a-row>
          <!-- end vid_y3mhnzfohy 布局容器_lnoerahl9d -->
          <!-- begin vid_q865svlhtw 容器_eerxtiv7po -->
          <al-box class="vid_q865svlhtw">
            <!-- begin vid_2a4yq6jmn8 项目组核心成员 -->
            <span class="vid_2a4yq6jmn8"> 项目组核心成员 </span>
            <!-- end vid_2a4yq6jmn8 项目组核心成员 -->
          </al-box>
          <!-- end vid_q865svlhtw 容器_eerxtiv7po -->
          <!-- begin vid_jo3h1260u5 布局容器_8gj4kknkr3 -->
          <a-row class="vid_jo3h1260u5" :gutter="16" :slots="'6:6:6:6'">
            <a-col :span="6">
              <!-- begin vid_jkwyfxa4lp 售前经理： -->
              <span class="vid_jkwyfxa4lp"> 售前经理： </span>
              <!-- end vid_jkwyfxa4lp 售前经理： -->
              <!-- begin vid_s6rkdpln3p 简单文本_a22thdkpod -->
              <span class="vid_s6rkdpln3p">
                {{ renderStringInTemplate(vid_s6rkdpln3p_props.rt_text) }}
              </span>
              <!-- end vid_s6rkdpln3p 简单文本_a22thdkpod -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_oxwis6zxco 数据实施总监： -->
              <span class="vid_oxwis6zxco"> 数据实施总监： </span>
              <!-- end vid_oxwis6zxco 数据实施总监： -->
              <!-- begin vid_0xvve1l4or 简单文本_dwxy02o5jy -->
              <span class="vid_0xvve1l4or">
                {{ renderStringInTemplate(vid_0xvve1l4or_props.rt_text) }}
              </span>
              <!-- end vid_0xvve1l4or 简单文本_dwxy02o5jy -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_mchyknofaw 数据治理工程师： -->
              <span class="vid_mchyknofaw"> 数据治理工程师： </span>
              <!-- end vid_mchyknofaw 数据治理工程师： -->
              <!-- begin vid_nog29pj7k6 简单文本_spm2amgczx -->
              <span class="vid_nog29pj7k6">
                {{ renderStringInTemplate(vid_nog29pj7k6_props.rt_text) }}
              </span>
              <!-- end vid_nog29pj7k6 简单文本_spm2amgczx -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_lkj2sewj8o 算法专家： -->
              <span class="vid_lkj2sewj8o"> 算法专家： </span>
              <!-- end vid_lkj2sewj8o 算法专家： -->
              <!-- begin vid_8fslc539he 简单文本_ysgg9o2u2e -->
              <span class="vid_8fslc539he">
                {{ renderStringInTemplate(vid_8fslc539he_props.rt_text) }}
              </span>
              <!-- end vid_8fslc539he 简单文本_ysgg9o2u2e -->
            </a-col>
          </a-row>
          <!-- end vid_jo3h1260u5 布局容器_8gj4kknkr3 -->
          <!-- begin vid_n38wcai14l 布局容器_mms6zin7sv -->
          <a-row class="vid_n38wcai14l" :gutter="16" :slots="'6:6:6:6'">
            <a-col :span="6">
              <!-- begin vid_vf5vni0vmp 交付经理： -->
              <span class="vid_vf5vni0vmp"> 交付经理： </span>
              <!-- end vid_vf5vni0vmp 交付经理： -->
              <!-- begin vid_64slkgm8na 简单文本_az7weqz8pg -->
              <span class="vid_64slkgm8na">
                {{ renderStringInTemplate(vid_64slkgm8na_props.rt_text) }}
              </span>
              <!-- end vid_64slkgm8na 简单文本_az7weqz8pg -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_tr7ch4as2e 产品经理： -->
              <span class="vid_tr7ch4as2e"> 产品经理： </span>
              <!-- end vid_tr7ch4as2e 产品经理： -->
              <!-- begin vid_tgsc4k7qm9 简单文本_753ipfeh30 -->
              <span class="vid_tgsc4k7qm9">
                {{ renderStringInTemplate(vid_tgsc4k7qm9_props.rt_text) }}
              </span>
              <!-- end vid_tgsc4k7qm9 简单文本_753ipfeh30 -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_7wzwq00m9t 技术经理： -->
              <span class="vid_7wzwq00m9t"> 技术经理： </span>
              <!-- end vid_7wzwq00m9t 技术经理： -->
              <!-- begin vid_mc3n2t4o0w 简单文本_hp5ow1kvoi -->
              <span class="vid_mc3n2t4o0w">
                {{ renderStringInTemplate(vid_mc3n2t4o0w_props.rt_text) }}
              </span>
              <!-- end vid_mc3n2t4o0w 简单文本_hp5ow1kvoi -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_j5ahn1jfxk 测试经理： -->
              <span class="vid_j5ahn1jfxk"> 测试经理： </span>
              <!-- end vid_j5ahn1jfxk 测试经理： -->
              <!-- begin vid_2tbl5udtlz 简单文本_v96l3z764y -->
              <span class="vid_2tbl5udtlz">
                {{ renderStringInTemplate(vid_2tbl5udtlz_props.rt_text) }}
              </span>
              <!-- end vid_2tbl5udtlz 简单文本_v96l3z764y -->
            </a-col>
          </a-row>
          <!-- end vid_n38wcai14l 布局容器_mms6zin7sv -->
          <!-- begin vid_zahfjnowu7 布局容器_tnkeztfp55 -->
          <a-row class="vid_zahfjnowu7" :gutter="16" :slots="'24'">
            <a-col :span="24">
              <!-- begin vid_kjuwlbk70j 客户满意中心工程师： -->
              <span class="vid_kjuwlbk70j"> 客户满意中心工程师： </span>
              <!-- end vid_kjuwlbk70j 客户满意中心工程师： -->
              <!-- begin vid_a7ysowlddd 简单文本_ouh99e1c1b -->
              <span class="vid_a7ysowlddd">
                {{ renderStringInTemplate(vid_a7ysowlddd_props.rt_text) }}
              </span>
              <!-- end vid_a7ysowlddd 简单文本_ouh99e1c1b -->
            </a-col>
          </a-row>
          <!-- end vid_zahfjnowu7 布局容器_tnkeztfp55 -->
          <!-- begin vid_9lrivxpors 布局容器_bkgergrcp3 -->
          <a-row class="vid_9lrivxpors" :gutter="16" :slots="'6:6:6:6'">
            <a-col :span="6">
              <!-- begin vid_e6xic6hmii 合同实际签订时间： -->
              <span class="vid_e6xic6hmii"> 合同实际签订时间： </span>
              <!-- end vid_e6xic6hmii 合同实际签订时间： -->
              <!-- begin vid_pvemgtm8vv 简单文本_dlf5etq6z5 -->
              <span class="vid_pvemgtm8vv">
                {{ renderStringInTemplate(vid_pvemgtm8vv_props.rt_text) }}
              </span>
              <!-- end vid_pvemgtm8vv 简单文本_dlf5etq6z5 -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_64tznuhtwq 合同计划开始时间： -->
              <span class="vid_64tznuhtwq"> 合同计划开始时间： </span>
              <!-- end vid_64tznuhtwq 合同计划开始时间： -->
              <!-- begin vid_l519g9lsye 文本 -->
              <span class="vid_l519g9lsye">
                {{ renderStringInTemplate(vid_l519g9lsye_props.rt_text) }}
              </span>
              <!-- end vid_l519g9lsye 文本 -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_4ygyyobw2x 合同计划上线时间： -->
              <span class="vid_4ygyyobw2x"> 合同计划上线时间： </span>
              <!-- end vid_4ygyyobw2x 合同计划上线时间： -->
              <!-- begin vid_yfnu4gndpt 简单文本_6mz7lrbodt -->
              <span class="vid_yfnu4gndpt">
                {{ renderStringInTemplate(vid_yfnu4gndpt_props.rt_text) }}
              </span>
              <!-- end vid_yfnu4gndpt 简单文本_6mz7lrbodt -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_8pxb6mc0ya 合同计划完成时间： -->
              <span class="vid_8pxb6mc0ya"> 合同计划完成时间： </span>
              <!-- end vid_8pxb6mc0ya 合同计划完成时间： -->
              <!-- begin vid_ie8qft8qgg 文本 -->
              <span class="vid_ie8qft8qgg">
                {{ renderStringInTemplate(vid_ie8qft8qgg_props.rt_text) }}
              </span>
              <!-- end vid_ie8qft8qgg 文本 -->
            </a-col>
          </a-row>
          <!-- end vid_9lrivxpors 布局容器_bkgergrcp3 -->
          <!-- begin vid_69wckbzuxg 布局容器_rvwag9qfxb -->
          <a-row class="vid_69wckbzuxg" :gutter="16" :slots="'6:6:6:6'">
            <a-col :span="6">
              <!-- begin vid_iha8nm0g1w 合同实际完成时间： -->
              <span class="vid_iha8nm0g1w"> 合同实际完成时间： </span>
              <!-- end vid_iha8nm0g1w 合同实际完成时间： -->
              <!-- begin vid_8hocw12vk9 简单文本_cxnw8kn6sa -->
              <span class="vid_8hocw12vk9">
                {{ renderStringInTemplate(vid_8hocw12vk9_props.rt_text) }}
              </span>
              <!-- end vid_8hocw12vk9 简单文本_cxnw8kn6sa -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_98ip2hnivh 人力成本预算： -->
              <span class="vid_98ip2hnivh"> 人力成本预算： </span>
              <!-- end vid_98ip2hnivh 人力成本预算： -->
              <!-- begin vid_rqmumk9zu7 简单文本_b5mukuhmp0 -->
              <span class="vid_rqmumk9zu7">
                {{ renderStringInTemplate(vid_rqmumk9zu7_props.rt_text) }}
              </span>
              <!-- end vid_rqmumk9zu7 简单文本_b5mukuhmp0 -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_okquk3p6ng 直接费用预算： -->
              <span class="vid_okquk3p6ng"> 直接费用预算： </span>
              <!-- end vid_okquk3p6ng 直接费用预算： -->
              <!-- begin vid_euh0mb45a6 简单文本_vuynbu7g5a -->
              <span class="vid_euh0mb45a6">
                {{ renderStringInTemplate(vid_euh0mb45a6_props.rt_text) }}
              </span>
              <!-- end vid_euh0mb45a6 简单文本_vuynbu7g5a -->
            </a-col>
            <a-col :span="6">
              <!-- begin vid_u3flmrju37 项目总预算： -->
              <span class="vid_u3flmrju37"> 项目总预算： </span>
              <!-- end vid_u3flmrju37 项目总预算： -->
              <!-- begin vid_uqvgl0mhiq 简单文本_hrp1yg1v5g -->
              <span class="vid_uqvgl0mhiq">
                {{ renderStringInTemplate(vid_uqvgl0mhiq_props.rt_text) }}
              </span>
              <!-- end vid_uqvgl0mhiq 简单文本_hrp1yg1v5g -->
            </a-col>
          </a-row>
          <!-- end vid_69wckbzuxg 布局容器_rvwag9qfxb -->
          <!-- begin vid_3qasvodetd 容器_q8s23to8yx -->
          <al-box class="vid_3qasvodetd">
            <!-- begin vid_fbjrcrsc9i 备注： -->
            <span class="vid_fbjrcrsc9i"> 备注： </span>
            <!-- end vid_fbjrcrsc9i 备注： -->
            <!-- begin vid_b2w81k3hm4 容器_hsm71vdj9i -->
            <al-box class="vid_b2w81k3hm4">
              <!-- begin vid_wbb0uy2b92 简单文本_4vdt38pfxu -->
              <span class="vid_wbb0uy2b92">
                {{ renderStringInTemplate(vid_wbb0uy2b92_props.rt_text) }}
              </span>
              <!-- end vid_wbb0uy2b92 简单文本_4vdt38pfxu -->
            </al-box>
            <!-- end vid_b2w81k3hm4 容器_hsm71vdj9i -->
          </al-box>
          <!-- end vid_3qasvodetd 容器_q8s23to8yx -->
          <!-- begin vid_nom1lh7ici 布局容器_wvuijsgu78 -->
          <a-row class="vid_nom1lh7ici" :gutter="16" :slots="'6:18'">
            <a-col :span="6">
              <!-- begin vid_mmgeuq9y32 提交人： -->
              <span class="vid_mmgeuq9y32"> 提交人： </span>
              <!-- end vid_mmgeuq9y32 提交人： -->
              <!-- begin vid_16w594bncd 简单文本_9nck9zxwow -->
              <span class="vid_16w594bncd">
                {{ renderStringInTemplate(vid_16w594bncd_props.rt_text) }}
              </span>
              <!-- end vid_16w594bncd 简单文本_9nck9zxwow -->
            </a-col>
            <a-col :span="18">
              <!-- begin vid_k0j0xg9b2m 提交时间： -->
              <span class="vid_k0j0xg9b2m"> 提交时间： </span>
              <!-- end vid_k0j0xg9b2m 提交时间： -->
              <!-- begin vid_k1hzxej9qn 简单文本_2cvr3h0wf6 -->
              <span class="vid_k1hzxej9qn">
                {{ renderStringInTemplate(vid_k1hzxej9qn_props.rt_text) }}
              </span>
              <!-- end vid_k1hzxej9qn 简单文本_2cvr3h0wf6 -->
            </a-col>
          </a-row>
          <!-- end vid_nom1lh7ici 布局容器_wvuijsgu78 -->
        </al-box>
        <!-- end vid_yyfck5bxnk 容器_fi74cupfju -->
        <!-- begin vid_y3wtnpd02n 容器_qml8fb4qbx -->
        <al-box class="vid_y3wtnpd02n">
          <!-- begin vid_8vn3vho168 容器_qsq5g2o4cs -->
          <al-box class="vid_8vn3vho168">
            <!-- begin vid_i5bnm830mb 项目附件 -->
            <span class="vid_i5bnm830mb"> 项目附件 </span>
            <!-- end vid_i5bnm830mb 项目附件 -->
          </al-box>
          <!-- end vid_8vn3vho168 容器_qsq5g2o4cs -->
          <!-- begin vid_1g9h9a8ocy 容器_nn8y8emv9b -->
          <al-box class="vid_1g9h9a8ocy">
            <!-- begin vid_fuymcrvt67 布局容器_1coxoh2zdf -->
            <a-row class="vid_fuymcrvt67">
              <a-col :span="8">
                <!-- begin vid_st624pev0q SOW -->
                <span class="vid_st624pev0q"> SOW </span>
                <!-- end vid_st624pev0q SOW -->
              </a-col>
              <a-col :span="8">
                <!-- begin vid_2oevito689 商务合同 -->
                <span class="vid_2oevito689"> 商务合同 </span>
                <!-- end vid_2oevito689 商务合同 -->
              </a-col>
              <a-col :span="8">
                <!-- begin vid_qqtizh2pw2 预算列表 -->
                <span class="vid_qqtizh2pw2"> 预算列表 </span>
                <!-- end vid_qqtizh2pw2 预算列表 -->
              </a-col>
            </a-row>
            <!-- end vid_fuymcrvt67 布局容器_1coxoh2zdf -->
            <!-- begin vid_zh1csqfvg1 布局容器_84lcidc25m -->
            <a-row class="vid_zh1csqfvg1">
              <a-col :span="8">
                <!-- begin vid_tjdzmlymfo For循环_e2hrvwtf3t -->
                <al-cycle
                  v-if="vid_tjdzmlymfo_props.dataSource?.length"
                  class="vid_tjdzmlymfo"
                  v-model:dataSource="vid_tjdzmlymfo_props.dataSource"
                  v-model:current="vid_tjdzmlymfo_props.current"
                  v-model:currentIndex="vid_tjdzmlymfo_props.currentIndex"
                >
                  <template #default="vid_tjdzmlymfo_dataItem">
                    <!-- begin vid_zf1rtuhzkj 文本 -->
                    <a-button :data-cycle-index="vid_tjdzmlymfo_dataItem.cycleIndex" class="vid_zf1rtuhzkj" :type="'link'" @click="handle_vid_zf1rtuhzkj_click">
                      {{ renderStringInTemplate(vid_tjdzmlymfo_dataItem.dataItem.name) }}
                    </a-button>
                    <!-- end vid_zf1rtuhzkj 文本 -->
                  </template>
                </al-cycle>
                <!-- end vid_tjdzmlymfo For循环_e2hrvwtf3t -->
              </a-col>
              <a-col :span="8">
                <!-- begin vid_sgllr4zga5 For循环_l7u3c9745b -->
                <al-cycle
                  v-if="vid_sgllr4zga5_props.dataSource?.length"
                  class="vid_sgllr4zga5"
                  v-model:dataSource="vid_sgllr4zga5_props.dataSource"
                  v-model:current="vid_sgllr4zga5_props.current"
                  v-model:currentIndex="vid_sgllr4zga5_props.currentIndex"
                >
                  <template #default="vid_sgllr4zga5_dataItem">
                    <!-- begin vid_tnmfd8tdof 按钮_1tebnbyxo0 -->
                    <a-button :data-cycle-index="vid_sgllr4zga5_dataItem.cycleIndex" class="vid_tnmfd8tdof" :type="'link'" @click="handle_vid_tnmfd8tdof_click">
                      {{ renderStringInTemplate(vid_sgllr4zga5_dataItem.dataItem.name) }}
                    </a-button>
                    <!-- end vid_tnmfd8tdof 按钮_1tebnbyxo0 -->
                  </template>
                </al-cycle>
                <!-- end vid_sgllr4zga5 For循环_l7u3c9745b -->
              </a-col>
              <a-col :span="8">
                <!-- begin vid_sy10f8jrux For循环_gyc5l74x6q -->
                <al-cycle
                  v-if="vid_sy10f8jrux_props.dataSource?.length"
                  class="vid_sy10f8jrux"
                  v-model:dataSource="vid_sy10f8jrux_props.dataSource"
                  v-model:current="vid_sy10f8jrux_props.current"
                  v-model:currentIndex="vid_sy10f8jrux_props.currentIndex"
                >
                  <template #default="vid_sy10f8jrux_dataItem">
                    <!-- begin vid_iy0rhsah4m 按钮_ctvsl6benj -->
                    <a-button :data-cycle-index="vid_sy10f8jrux_dataItem.cycleIndex" class="vid_iy0rhsah4m" :type="'link'" @click="handle_vid_iy0rhsah4m_click">
                      {{ renderStringInTemplate(vid_sy10f8jrux_dataItem.dataItem.name) }}
                    </a-button>
                    <!-- end vid_iy0rhsah4m 按钮_ctvsl6benj -->
                  </template>
                </al-cycle>
                <!-- end vid_sy10f8jrux For循环_gyc5l74x6q -->
              </a-col>
            </a-row>
            <!-- end vid_zh1csqfvg1 布局容器_84lcidc25m -->
          </al-box>
          <!-- end vid_1g9h9a8ocy 容器_nn8y8emv9b -->
        </al-box>
        <!-- end vid_y3wtnpd02n 容器_qml8fb4qbx -->
        <!-- begin vid_5cn718xsru 容器_n25lsxn1pd -->
        <al-box class="vid_5cn718xsru">
          <!-- begin vid_uv65i1f8qj 容器_qo4z4f2w1w -->
          <al-box class="vid_uv65i1f8qj">
            <!-- begin vid_a5bbpto454 甲方信息 -->
            <span class="vid_a5bbpto454"> 甲方信息 </span>
            <!-- end vid_a5bbpto454 甲方信息 -->
          </al-box>
          <!-- end vid_uv65i1f8qj 容器_qo4z4f2w1w -->
          <!-- begin vid_ot922v6tj4 表格_6w277risx4 -->
          <!-- 表格_6w277risx4 -->
          <a-table
            class="vid_ot922v6tj4"
            :editRowSaveLoading="vid_ot922v6tj4_props.editRowSaveLoading"
            :sorter="vid_ot922v6tj4_props.sorter"
            :currentRow="vid_ot922v6tj4_props.currentRow"
            :selectedRowList="vid_ot922v6tj4_props.selectedRowList"
            :data-source="vid_ot922v6tj4_options()"
            @change="handle_vid_ot922v6tj4_change"
            :columns="vid_ot922v6tj4_columns"
            :pagination="vid_ot922v6tj4_pagination"
            row-key="id"
            @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_ot922v6tj4')"
            :scroll="{ x: 'max-content', scrollToFirstRowOnChange: true, }"
            :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
          >
            <template #headerCell="{ title, column }">
              <TableHeaderCell :title="title" :column="column" />
            </template>
            <template #bodyCell="{ text, column, record, index }">
              <!-- 序号列 -->
              <template v-if="column && column.dataIndex === 'vid_ot922v6tj4_serialNumber'">
                {{ index + 1 }}
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"id"} 列内容 -->
              <template v-if="column.dataIndex === 'id' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"name"} 列内容 -->
              <template v-if="column.dataIndex === 'name' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"变更项"} 列内容 -->
              <template v-if="column.dataIndex === 'changeFieldName' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"变更前"} 列内容 -->
              <template v-if="column.dataIndex === 'beforeChange' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"变更后"} 列内容 -->
              <template v-if="column.dataIndex === 'afterChange' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"变更原因"} 列内容 -->
              <template v-if="column.dataIndex === 'reasonsChange' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"角色"} 列内容 -->
              <template v-if="column.dataIndex === 'role' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
              <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"甲方姓名"} 列内容 -->
              <template v-if="column.dataIndex === 'firstPartyName' && !column.customRender">
                <text-table-cell
                  :rowData="record"
                  :conditionValueMap="vid_ot922v6tj4_props.boundaryValueMap"
                  :dataSource="vid_ot922v6tj4_props.contentDataSource[column.dataIndex]"
                  :columnsConfig="column"
                  :value="text"
                />
              </template>
            </template>
          </a-table>
          <!-- end vid_ot922v6tj4 表格_6w277risx4 -->
        </al-box>
        <!-- end vid_5cn718xsru 容器_n25lsxn1pd -->
        <!-- begin vid_c0vz1385g3 容器_8mojplbane -->
        <al-box v-if="false" class="vid_c0vz1385g3">
          <!-- begin vid_2rmntbmepb 简单文本_hgduockr34 -->
          <span class="vid_2rmntbmepb"> 变更详情 </span>
          <!-- end vid_2rmntbmepb 简单文本_hgduockr34 -->
          <!-- begin vid_gkppoqyw88 布局容器_uf9ec3a32g -->
          <a-row class="vid_gkppoqyw88" :slots="'4:8:4:8:4:8:4:8:4:20:4:20'">
            <a-col :span="4">
              <!-- begin vid_8qd672au1f 容器_wyc7ga2yke -->
              <al-box class="vid_8qd672au1f">
                <!-- begin vid_f132mxp7fd 简单文本_hiil67ikqt -->
                <span class="vid_f132mxp7fd"> 项目阶段名称 </span>
                <!-- end vid_f132mxp7fd 简单文本_hiil67ikqt -->
              </al-box>
              <!-- end vid_8qd672au1f 容器_wyc7ga2yke -->
            </a-col>
            <a-col :span="8">
              <!-- begin vid_c3t7z3pefv 容器_o21s77549m -->
              <al-box class="vid_c3t7z3pefv">
                <!-- begin vid_9decjcxfpg 简单文本_1ni31f4d19 -->
                <span class="vid_9decjcxfpg"> 文本 </span>
                <!-- end vid_9decjcxfpg 简单文本_1ni31f4d19 -->
              </al-box>
              <!-- end vid_c3t7z3pefv 容器_o21s77549m -->
            </a-col>
            <a-col :span="4">
              <!-- begin vid_8c45ajyo39 容器_szx06r3gz4 -->
              <al-box class="vid_8c45ajyo39">
                <!-- begin vid_qlpmbsq4w5 简单文本_kziygxsfp5 -->
                <span class="vid_qlpmbsq4w5"> 关联检查清单 </span>
                <!-- end vid_qlpmbsq4w5 简单文本_kziygxsfp5 -->
              </al-box>
              <!-- end vid_8c45ajyo39 容器_szx06r3gz4 -->
            </a-col>
            <a-col :span="8">
              <!-- begin vid_p12vkt7y86 容器_olpquwbfxm -->
              <al-box class="vid_p12vkt7y86">
                <!-- begin vid_jvb6q14f3r 简单文本_exo9pt9olo -->
                <span class="vid_jvb6q14f3r"> 文本 </span>
                <!-- end vid_jvb6q14f3r 简单文本_exo9pt9olo -->
              </al-box>
              <!-- end vid_p12vkt7y86 容器_olpquwbfxm -->
            </a-col>
            <a-col :span="4">
              <!-- begin vid_6rb4youa5q 容器_zsp5c9mfbj -->
              <al-box class="vid_6rb4youa5q">
                <!-- begin vid_5ngjc1dfwx 简单文本_sfylemc2qq -->
                <span class="vid_5ngjc1dfwx"> 项目阶段序号 </span>
                <!-- end vid_5ngjc1dfwx 简单文本_sfylemc2qq -->
              </al-box>
              <!-- end vid_6rb4youa5q 容器_zsp5c9mfbj -->
            </a-col>
            <a-col :span="8">
              <!-- begin vid_7monx6ej2h 容器_1dtj3aoioc -->
              <al-box class="vid_7monx6ej2h">
                <!-- begin vid_hqtla9243d 简单文本_chokd7t5x3 -->
                <span class="vid_hqtla9243d"> 文本 </span>
                <!-- end vid_hqtla9243d 简单文本_chokd7t5x3 -->
              </al-box>
              <!-- end vid_7monx6ej2h 容器_1dtj3aoioc -->
            </a-col>
            <a-col :span="4">
              <!-- begin vid_voagrgzvao 容器_shs0kho6ew -->
              <al-box class="vid_voagrgzvao">
                <!-- begin vid_8w0tvpt6v6 简单文本_rk1wxyae1q -->
                <span class="vid_8w0tvpt6v6"> 项目阶段预算(元） </span>
                <!-- end vid_8w0tvpt6v6 简单文本_rk1wxyae1q -->
              </al-box>
              <!-- end vid_voagrgzvao 容器_shs0kho6ew -->
            </a-col>
            <a-col :span="8">
              <!-- begin vid_p1q0dbj4or 容器_iqpf8b2hll -->
              <al-box class="vid_p1q0dbj4or">
                <!-- begin vid_zyfwif40qx 简单文本_72f7tx94t7 -->
                <span class="vid_zyfwif40qx"> 文本 </span>
                <!-- end vid_zyfwif40qx 简单文本_72f7tx94t7 -->
              </al-box>
              <!-- end vid_p1q0dbj4or 容器_iqpf8b2hll -->
            </a-col>
            <a-col :span="4">
              <!-- begin vid_qi92qa5xqj 容器_ft2gwbbp2i -->
              <al-box class="vid_qi92qa5xqj">
                <!-- begin vid_px7ctc6qix 简单文本_6bsari4yrq -->
                <span class="vid_px7ctc6qix"> 备注 </span>
                <!-- end vid_px7ctc6qix 简单文本_6bsari4yrq -->
              </al-box>
              <!-- end vid_qi92qa5xqj 容器_ft2gwbbp2i -->
            </a-col>
            <a-col :span="20">
              <!-- begin vid_hpvmzr0j6n 容器_rfwpdjeck6 -->
              <al-box class="vid_hpvmzr0j6n">
                <!-- begin vid_fjpy895zs6 简单文本_o0yscudvyv -->
                <span class="vid_fjpy895zs6">
                  {{ renderStringInTemplate(vid_fjpy895zs6_props.rt_text) }}
                </span>
                <!-- end vid_fjpy895zs6 简单文本_o0yscudvyv -->
              </al-box>
              <!-- end vid_hpvmzr0j6n 容器_rfwpdjeck6 -->
            </a-col>
            <a-col :span="4">
              <!-- begin vid_egbbcjmryg 容器_9bor0i54ux -->
              <al-box class="vid_egbbcjmryg">
                <!-- begin vid_blslz90auk 简单文本_0u3t6a5ce6 -->
                <span class="vid_blslz90auk"> 变更原因 </span>
                <!-- end vid_blslz90auk 简单文本_0u3t6a5ce6 -->
              </al-box>
              <!-- end vid_egbbcjmryg 容器_9bor0i54ux -->
            </a-col>
            <a-col :span="20">
              <!-- begin vid_ukxhcetfc9 容器_t12vges4yc -->
              <al-box class="vid_ukxhcetfc9">
                <!-- begin vid_e98nw1y9yq 简单文本_46b40qxqye -->
                <span class="vid_e98nw1y9yq"> 文本 </span>
                <!-- end vid_e98nw1y9yq 简单文本_46b40qxqye -->
              </al-box>
              <!-- end vid_ukxhcetfc9 容器_t12vges4yc -->
            </a-col>
          </a-row>
          <!-- end vid_gkppoqyw88 布局容器_uf9ec3a32g -->
        </al-box>
        <!-- end vid_c0vz1385g3 容器_8mojplbane -->
      </al-box>
      <!-- end vid_62olged3y7 容器_184zbiogl2 -->
    </a-spin>
  </div>
</template>
<script setup lang="tsx">
  import {
      h, ref, reactive, toRaw, markRaw, watch, computed,
      onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onActivated, onDeactivated
    } from "vue";
    import { useRoute, useRouter } from 'vue-router';
    const router = useRouter();
    const route = useRoute();
    import { get, post, put, del, request, requestWithHeaders } from '@/utils/http/Axios';
    import { cloneDeep, localGet, merge, getDifferenceArray, traversalTreeStructure, checkCaseCondition, renderStringInTemplate, handleBreadcrumbJump, throttle, permission, getComponentParamsValue } from '@/utils/index';
    import { isNullOrEmpty, isEmptyArr, isNullOrUnDef, isContained, isArray, isEmpty, isObject } from '@/utils/is';
    import dayjs from 'dayjs';
    import { getPagePcChartsDataSourceConvert } from '@/utils/chart';
    import { message, notification, Modal } from 'ant-design-vue'
    import { propertyFormatByNumber, propertyFormatByPercentage, propertyFormatByDate, parseSubFromDataList } from '@/utils/format';
    import colorTheme from '@/design/custom-theme.json';
    
    import UserTableRecords from '@/model/UserTableRecords';
    import { getAppBaseUrl } from '@/utils/index';
    import { sendToken } from "@/hooks/useIframeToken";
    import { useSystemStore } from "@/store/modules/system";
    const systemStore = useSystemStore();
    

  import TextTableCell from '@/components/page/tableCell/text.vue';
  import TooltipTableCell from '@/components/page/tableCell/tooltip.vue';
  import NumberTableCell from '@/components/page/tableCell/number.vue';
  import ProgressTableCell from '@/components/page/tableCell/progress.vue';
  import OptionsTableCell from '@/components/page/tableCell/options.vue';
  import MultipleOptionsTableCell from '@/components/page/tableCell/multipleOptions.vue';
  import DatePickerTableCell from '@/components/page/tableCell/datePicker.vue';
  import RangePickerTableCell from '@/components/page/tableCell/rangePicker.vue';
  import RangeNumberTableCell from '@/components/page/tableCell/rangeNumber.vue';
  import BoolTableCell from '@/components/page/tableCell/bool.vue';
  import TableHeaderCell from '@/components/page/TableHeaderCell.vue';

      // 获取传入的流程ID和组件参数
      const props = defineProps({
            'processInstanceId': {
            type: [String,Number,Boolean],
            default: undefined,
        },
      })
      const immediateWatch = (source, callback) => {
        watch(source, callback, {deep: true,immediate: true })
      }



  /* -------------------------- 属性定义 -------------------------- */

      const setTimeOutList = [];
      const pageLoading = reactive({
        loading: false,
        tip: undefined
      });
      const authInfo = localGet('app-user-store');

    const vid_6ttysl44kc_props = reactive({
          rt_text: undefined,
  })

    const vid_ti4ei79bia_props = reactive({
          rt_text: undefined,
  })

    const vid_397qdux4m9_props = reactive({
          rt_text: undefined,
  })

    const vid_bvvbenzf97_props = reactive({
          rt_text: undefined,
  })

    const vid_0wb2ge9h1r_props = reactive({
          rt_text: undefined,
  })

    const vid_zi5g5tyu7w_props = reactive({
          rt_text: undefined,
  })

    const vid_q4d1mt1gqv_props = reactive({
          rt_text: undefined,
  })

    const vid_uyztrpdycb_props = reactive({
          rt_text: undefined,
  })

    const vid_gzv1erfqnp_props = reactive({
          rt_text: undefined,
  })

    const vid_qhpxcp4j2j_props = reactive({
          rt_text: undefined,
  })

    const vid_s6rkdpln3p_props = reactive({
          rt_text: undefined,
  })

    const vid_0xvve1l4or_props = reactive({
          rt_text: undefined,
  })

    const vid_nog29pj7k6_props = reactive({
          rt_text: undefined,
  })

    const vid_8fslc539he_props = reactive({
          rt_text: undefined,
  })

    const vid_64slkgm8na_props = reactive({
          rt_text: undefined,
  })

    const vid_tgsc4k7qm9_props = reactive({
          rt_text: undefined,
  })

    const vid_mc3n2t4o0w_props = reactive({
          rt_text: undefined,
  })

    const vid_2tbl5udtlz_props = reactive({
          rt_text: undefined,
  })

    const vid_a7ysowlddd_props = reactive({
          rt_text: undefined,
  })

    const vid_pvemgtm8vv_props = reactive({
          rt_text: undefined,
  })

    const vid_l519g9lsye_props = reactive({
          rt_text: undefined,
  })

    const vid_yfnu4gndpt_props = reactive({
          rt_text: undefined,
  })

    const vid_ie8qft8qgg_props = reactive({
          rt_text: undefined,
  })

    const vid_8hocw12vk9_props = reactive({
          rt_text: undefined,
  })

    const vid_rqmumk9zu7_props = reactive({
          rt_text: undefined,
  })

    const vid_euh0mb45a6_props = reactive({
          rt_text: undefined,
  })

    const vid_uqvgl0mhiq_props = reactive({
          rt_text: undefined,
  })

    const vid_wbb0uy2b92_props = reactive({
          rt_text: undefined,
  })

    const vid_16w594bncd_props = reactive({
          rt_text: undefined,
  })

    const vid_k1hzxej9qn_props = reactive({
          rt_text: undefined,
  })

    const vid_sy10f8jrux_props = reactive({
          dataSource: [{"imgUrl":"","uid":"","size":-1,"name":"","enclosureId":-1,"delFlag":-1,"type":"","projectId":-1,"url":"","status":""}],
      current: {"imgUrl":"","uid":"","size":-1,"name":"","enclosureId":-1,"delFlag":-1,"type":"","projectId":-1,"url":"","status":""},
      currentIndex: -1,
  })

    const vid_iy0rhsah4m_props = reactive({
          rt_text: undefined,
  })

    const vid_sgllr4zga5_props = reactive({
          dataSource: [{"imgUrl":"","uid":"","size":-1,"name":"","enclosureId":-1,"delFlag":-1,"type":"","projectId":-1,"url":"","status":""}],
      current: {"imgUrl":"","uid":"","size":-1,"name":"","enclosureId":-1,"delFlag":-1,"type":"","projectId":-1,"url":"","status":""},
      currentIndex: -1,
  })

    const vid_tnmfd8tdof_props = reactive({
          rt_text: undefined,
  })

    const vid_tjdzmlymfo_props = reactive({
          dataSource: [{"imgUrl":"","uid":"","size":-1,"name":"","enclosureId":-1,"delFlag":-1,"type":"","projectId":-1,"url":"","status":""}],
      current: {"imgUrl":"","uid":"","size":-1,"name":"","enclosureId":-1,"delFlag":-1,"type":"","projectId":-1,"url":"","status":""},
      currentIndex: -1,
  })

    const vid_zf1rtuhzkj_props = reactive({
          rt_text: undefined,
  })

    const vid_ot922v6tj4_props = reactive({
          systemSort: [],
      sorter: {},
      editRowSaveLoading: {},
      currentRow: {"id":"","name":"","changeFieldName":"","beforeChange":"","afterChange":"","reasonsChange":"","role":"","firstPartyName":""},
      selectedRowList: {"changeFieldName":[],"reasonsChange":[],"name":[],"afterChange":[],"id":[],"beforeChange":[],"custom1":[],"custom2":[],"role":[],"firstPartyName":[]},
      totalNumber: "",
      rt_tableConfig: {"layout":{"showHeader":true,"sticky":false,"operationColumnFixed":"default"},"pagination":{"current":1,"pageSizeOptions":"10,20,30,40","enable":true,"showTotal":false,"hideOnSinglePage":false,"pageSize":10,"simple":false,"sync":true,"showQuickJumper":false,"showSizeChanger":false},"scroll":{"x":"max-content","y":"","scrollToFirstRowOnChange":true},"style":{"contentStyle":{"borderColor":"#D9D9D9","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\"","lintHeight":40,"borderWidth":1,"evenLineBackColor":"#F8FAFC","textWeight":"400","fontSize":14,"oddLineBackColor":"#FFFFFF","textColor":"#262626"},"paginationStyle":{"layout":"bottomRight","size":"default"},"headerStyle":{"borderColor":"#D9D9D9","backgroundColor":"#3875FF","fontFamily":"arial, helvetica, \"microsoft yahei\"","lintHeight":40,"borderWidth":1,"textWeight":"600","fontSize":14,"enableTextStyle":true,"textColor":"#FFFFFF"}},"basic":{"rowSelection":false,"rowEdit":{"cancelText":"取消","editText":"编辑","saveText":"保存"},"title":"","showSequenceNumber":false,"rowKey":"id"}},
      columnList: [
          {
            id: 'l9ykh7ddca',
            dataIndex: 'role',
            headerComment: false,
            title: '角色',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'lrt1pzaa45',
            dataIndex: 'firstPartyName',
            headerComment: false,
            title: '甲方姓名',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },

        ],
      rawColumnList: [],
      // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
      rowMergeSort: [],
      // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
      systemSort: [],
      // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
      boundaryValueMap: {},
      // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
      contentDataSource: {},
  })

    const vid_fjpy895zs6_props = reactive({
          rt_text: undefined,
  })



      // 处理校验
      const setSubFormName =(parentInfo, name)=>{
        return [parentInfo.parents, parentInfo.cycleIndex, name];
      }


    const vid_ot922v6tj4_options_raw = ref([])

      const vid_ot922v6tj4_options = computed(() => {
        return () => vid_ot922v6tj4_options_raw.value
      })

  // 图表组件 表格_6w277risx4 条件格式数据依赖
  const vid_ot922v6tj4_chartConditionDependencyMap = ref({
  })
  /* ========================== 属性定义 ========================== */


  /* -------------------------- 元素数据引用 -------------------------- */


  /* ========================== 元素数据引用 ========================== */


  /* -------------------------- 页面数据 -------------------------- */

    // 页面数据 审批详情(新)
    const dataConnector_conn_mffeaigqii_response = ref();
    const dataConnector_conn_mffeaigqii = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/{instanceId}';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_mffeaigqii_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 查询项目审批信息（新）
    const dataConnector_conn_g3fdy0xqr3_response = ref();
    const dataConnector_conn_g3fdy0xqr3 = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/delivery_project/search_by_instance/{instanceId}';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: {}
              }).then(async (resp) => {
            dataConnector_conn_g3fdy0xqr3_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


  /* ========================== 页面数据 ========================== */



  /* -------------------------- 响应 -------------------------- */

  /* ========================== 响应 ========================== */


  /* -------------------------- 函数 -------------------------- */

    // 自定义函数 商务合同文件下载
    const customFunction_okcvqea423 =  (params) => {
      let xhr = new XMLHttpRequest();
      xhr.open('GET', vid_sgllr4zga5_props.current.url, true);
      xhr.responseType = 'blob';
      xhr.onload = function () {
        if (xhr.status === 200) {
          if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveBlob(xhr.response, vid_sgllr4zga5_props.current.name);
          } else {
            let link = document.createElement('a');
            let body = document.querySelector('body');
            link.href = window.URL.createObjectURL(xhr.response);
            link.download = vid_sgllr4zga5_props.current.name;
            // fix Firefox
            link.style.display = 'none';
            body.appendChild(link);
            link.click();
            body.removeChild(link);
            window.URL.revokeObjectURL(link.href);
          };
        }
      };
      xhr.send();
    }


    // 自定义函数 预算列表文件下载
    const customFunction_fy9zxymvcg =  (params) => {
      let xhr = new XMLHttpRequest();
      xhr.open('GET', vid_sy10f8jrux_props.current.url, true);
      xhr.responseType = 'blob';
      xhr.onload = function () {
        if (xhr.status === 200) {
          if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveBlob(xhr.response, vid_sy10f8jrux_props.current.name);
          } else {
            let link = document.createElement('a');
            let body = document.querySelector('body');
            link.href = window.URL.createObjectURL(xhr.response);
            link.download = vid_sy10f8jrux_props.current.name;
            // fix Firefox
            link.style.display = 'none';
            body.appendChild(link);
            link.click();
            body.removeChild(link);
            window.URL.revokeObjectURL(link.href);
          }
        }
      };
      xhr.send();
    }


    // 自定义函数 sow文件下载
    const customFunction_f2gqza8wgw =  (params) => {
      let xhr = new XMLHttpRequest();
      xhr.open('GET', vid_tjdzmlymfo_props.current.url, true);
      xhr.responseType = 'blob';
      xhr.onload = function () {
        if (xhr.status === 200) {
          if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveBlob(xhr.response, vid_tjdzmlymfo.current.name);
          } else {
            let link = document.createElement('a');
            let body = document.querySelector('body');
            link.href = window.URL.createObjectURL(xhr.response);
            link.download = vid_tjdzmlymfo_props.current.name;
            // fix Firefox
            link.style.display = 'none';
            body.appendChild(link);
            link.click();
            body.removeChild(link);
            window.URL.revokeObjectURL(link.href);
          }
        }
      };
      xhr.send();
    }

  /* ========================== 函数 ========================== */


  /* -------------------------- 页面参数 -------------------------- */

    const pageParameter_state = reactive({
        'processInstanceId': props.processInstanceId ?? route.query.processInstanceId,
    })

  /* ========================== 页面参数 ========================== */


  /* -------------------------- 组件事件处理方法 -------------------------- */

    // ---------------------------- 组件数据同步 ----------------------------
    // 处理 创建项目 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.classify,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.classify

      vid_6ttysl44kc_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 项目名称xxxxxxxx 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.projectName,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.projectName

      vid_ti4ei79bia_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_s0aex6uxjj 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.projectPriority,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.projectPriority

      vid_397qdux4m9_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_vik50h55nr 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.projectCode,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.projectCode

      vid_bvvbenzf97_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_uwaqfvopcj 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.projectStakeholdersName,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.projectStakeholdersName

      vid_0wb2ge9h1r_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_oqt0hnndow 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.vicePresident,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.vicePresident

      vid_zi5g5tyu7w_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_q04za9lk2n 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.projectDirector,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.projectDirector

      vid_q4d1mt1gqv_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 文本 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.projectManagementOffice,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.projectManagementOffice

      vid_uyztrpdycb_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 时光 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.pmName,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.pmName

      vid_gzv1erfqnp_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_7f7njdtnb0 的 rt_text 属性关联
  watch(() => dataConnector_conn_g3fdy0xqr3_response?.value?.data?.afterSalesManager,
    () => {
      let dataList = dataConnector_conn_g3fdy0xqr3_response?.value?.data?.afterSalesManager

      vid_qhpxcp4j2j_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_a22thdkpod 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.preSaleManager,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.preSaleManager

      vid_s6rkdpln3p_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_dwxy02o5jy 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.dataImplementationDirector,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.dataImplementationDirector

      vid_0xvve1l4or_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_spm2amgczx 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.dataGovernanceEngineer,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.dataGovernanceEngineer

      vid_nog29pj7k6_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_ysgg9o2u2e 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.algorithmExpert,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.algorithmExpert

      vid_8fslc539he_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_az7weqz8pg 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.deliveryManager,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.deliveryManager

      vid_64slkgm8na_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_753ipfeh30 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.productLeaderName,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.productLeaderName

      vid_tgsc4k7qm9_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_hp5ow1kvoi 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.developLeaderName,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.developLeaderName

      vid_mc3n2t4o0w_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_v96l3z764y 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.testLeaderName,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.testLeaderName

      vid_2tbl5udtlz_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_ouh99e1c1b 的 rt_text 属性关联
  watch(() => dataConnector_conn_g3fdy0xqr3_response?.value?.data?.afterSalesEngineer,
    () => {
      let dataList = dataConnector_conn_g3fdy0xqr3_response?.value?.data?.afterSalesEngineer

      vid_a7ysowlddd_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_dlf5etq6z5 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.contractDate,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.contractDate

      vid_pvemgtm8vv_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 文本 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.startTime,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.startTime

      vid_l519g9lsye_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_6mz7lrbodt 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.deliveryTime,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.deliveryTime

      vid_yfnu4gndpt_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 文本 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.endTime,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.endTime

      vid_ie8qft8qgg_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_cxnw8kn6sa 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.actualEndTime,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.actualEndTime

      vid_8hocw12vk9_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_b5mukuhmp0 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.budget,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.budget

      vid_rqmumk9zu7_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_vuynbu7g5a 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.directExpenseBudget,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.directExpenseBudget

      vid_euh0mb45a6_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_hrp1yg1v5g 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.humanCostBudget,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.humanCostBudget

      vid_uqvgl0mhiq_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_4vdt38pfxu 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.description,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.description

      vid_wbb0uy2b92_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_9nck9zxwow 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.updateBy,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.updateBy

      vid_16w594bncd_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_2cvr3h0wf6 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.updateTime,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.updateTime

      vid_k1hzxej9qn_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 For循环_gyc5l74x6q 的 systemList 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.budgetEnclosureInfoList,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.budgetEnclosureInfoList

      vid_sy10f8jrux_props.dataSource = dataList;
    },
    {deep: true})
  // 处理 For循环_l7u3c9745b 的 systemList 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.commercialEnclosureInfoList,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.commercialEnclosureInfoList

      vid_sgllr4zga5_props.dataSource = dataList;
    },
    {deep: true})
  // 处理 For循环_e2hrvwtf3t 的 systemList 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.ppmEnclosureDtoList,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.ppmEnclosureDtoList

      vid_tjdzmlymfo_props.dataSource = dataList;
    },
    {deep: true})
  // 处理 表格_6w277risx4 的 systemList 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.ppmProjectFirstPartyDtoList,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.ppmProjectFirstPartyDtoList

      vid_ot922v6tj4_options_raw.value = dataList;
    },
    {deep: true})
  // 处理 简单文本_o0yscudvyv 的 rt_text 属性关联
  watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.description,
    () => {
      let dataList = dataConnector_conn_mffeaigqii_response?.value?.data?.description

      vid_fjpy895zs6_props.rt_text = dataList;
    },
    {deep: true})
    // ============================ 组件数据同步 ============================

  /**
  * 处理元素 按钮 的 click 事件
  */
  let handle_vid_iy0rhsah4m_click = throttle(async (...params) => {
  customFunction_fy9zxymvcg();
  }, 500)
  /**
  * 处理元素 按钮 的 click 事件
  */
  let handle_vid_tnmfd8tdof_click = throttle(async (...params) => {
  customFunction_okcvqea423();
  }, 500)
  /**
  * 处理元素 按钮 的 click 事件
  */
  let handle_vid_zf1rtuhzkj_click = throttle(async (...params) => {
  customFunction_f2gqza8wgw();
  }, 500)
  /**
  * 处理元素 表格 的 change 事件
  */
  let handle_vid_ot922v6tj4_change = throttle(async (...params) => {
  // 处理分页器相关数据
  const [pagination, filters, sorter] = params;
  const { current, pageSize } = pagination;
  vid_ot922v6tj4_props.rt_tableConfig.pagination.current = current;
  vid_ot922v6tj4_props.rt_tableConfig.pagination.pageSize = pageSize;
  // 处理排序相关数据
  const { field, order } = sorter;
  const sorterList = [...vid_ot922v6tj4_props.rowMergeSort];
  let sorterValue = {};
  if (order === 'descend') {
  sorterValue = { order: field, direction: 'DESC' }
  } else if (order === 'ascend') {
  sorterValue = { order: field, direction: 'ASC' }
  }
  sorterList.push(sorterValue);
  vid_ot922v6tj4_props.systemSort = sorterList;
  vid_ot922v6tj4_props.sorter = sorterValue;
  }, 500)
  /* ========================== 组件事件处理方法 ========================== */


  /* -------------------------- 生命周期 -------------------------- */
  // 用于参数变更后重新执行自定义指令
      const queryUpdateFlag = ref(0);
      onMounted(() => { ;dataConnector_conn_mffeaigqii()
  dataConnector_conn_g3fdy0xqr3()

    });

    onUnmounted(() => {
      // 销毁定时器
      setTimeOutList.forEach(({ repeat, timer }) => {
        repeat ?  clearInterval(timer): clearTimeout(timer);
      });
    });

  /* ========================== 生命周期 ========================== */


  /* -------------------------- 数据关联处理 -------------------------- */





  /* -------------------------- 表单数据同步 -------------------------- */
  /* ========================== 表单数据同步 ========================== */

  /* ========================== 数据关联处理 ========================== */


  /* -------------------------- 不同组件自定义的处理逻辑 -------------------------- */
  onMounted(() => {
    const rawColumnList = []
    traversalTreeStructure(vid_ot922v6tj4_props.columnList, (node) => {
      if (node.type === 'column') {
        rawColumnList.push(node)
      }
    });
    
    // 获取缓存的表格列宽度，处理列宽信息
    UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
      const columnWidthMap = res['vid_ot922v6tj4'] ?? {};
      rawColumnList.map((column) => {
        if(columnWidthMap[column.dataIndex]) {
          column.width = columnWidthMap[column.dataIndex]
        }
      })
    });
    
    vid_ot922v6tj4_props.rawColumnList = rawColumnList;
  })
  // 生成表格列：相同分组的数据需要合并单元格
  const vid_ot922v6tj4_columns = computed(() => {
    // 需要合并单元格的列
    const groupKeys = [];

    // 将表头配置按照groupTitle字段进行分组，以实现多级表头
    const columnList = [...vid_ot922v6tj4_props.columnList];
    function formatColumns(columns) {
      columns.forEach(item => {
        const { dataIndex, contentAlign, children, customCellStyle } = item;
        // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
        if (!dataIndex && children && children.length) {
          formatColumns(children);
          return;
        }

        const groupIndex = groupKeys.findIndex(item => item === dataIndex);
        // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
        if (groupIndex === -1) {
          item.customCell = (record, index) => {
            return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
          };
        } else {
          item.customCell = (record, index) => {
            const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
            const rowSpanList = generateRowSpanList(vid_ot922v6tj4_options.value(), rowGroupKeys,vid_ot922v6tj4_props.editRecordMap);
            return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
          };
        }
      })
    }

    // 格式化column：增加合并单元格的配置，以及自定义样式
    formatColumns(columnList);

    return columnList;
  });


    // 表格分页器信息：将总条数信息加到基础分页信息中
    const vid_ot922v6tj4_pagination = computed(() => {
      const { totalNumber, rt_tableConfig } = vid_ot922v6tj4_props;
      const {
        enable = true,
        current= 1,
        pageSize= 10,
        showSizeChanger= false,
        pageSizeOptions= '10,20,30,40',
        showTotal= false,
        showQuickJumper= false,
        simple= false,
        hideOnSinglePage= false,
      } = rt_tableConfig.pagination ?? {};
      const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
      let info = {};
      if(enable) {
        info = {
          total: totalNumber || 0,
          pageSize,
          size,
          simple,
          current,
          showSizeChanger,
          pageSizeOptions: pageSizeOptions.split(','),
          showQuickJumper,
          hideOnSinglePage,
          position: [layout],
        }
        if(showTotal) {
          info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
        }
        return info;
      }
      return false;
    })


        // 补充一个watch，用于监听删除最后一页最后一条数据的情况，然后重新加载数据
        watch(() => dataConnector_conn_mffeaigqii_response?.value?.data?.ppmProjectFirstPartyDtoList, (newValue) => {
          const current = vid_ot922v6tj4_props.rt_tableConfig.pagination.current;
          if (!newValue?.length && current > 1) {
            vid_ot922v6tj4_props.rt_tableConfig.pagination.current = current - 1;
            dataConnector_conn_mffeaigqii();
          }
        });
  /**
   * 生成分组字段合并单元格的配置：返回值为一个数字数组，数组里面每一项即为该字段当前行的rowSpan配置
   * @param {Array} 表格中的数据
   * @param {Array} 当前分组字段的列表，注：为了保证优先级低的字段合并后是优先级高的字段合并后的子集，需要把比该字段优先级高的分组字段按顺序放在该字段前面；例如：所有分组字段列表为['grade', 'age', 'score']，要生成age字段的合并单元格配置，则该参数需要传['grade', 'age']
   * @returns {Array} 该字段合并单元格的rowSpan配置，例：[1, 1, 2, 0, 1]
   */
  function generateRowSpanList(dataSource, groupKeys,editRecordMap) {
    if (!dataSource || !dataSource.length) {
      return [];
    }

    const rowSpanList = [];

    // 判断单元格是否需要合并的临时值：使用表格数据最后一行进行初始化（表格数据的遍历是倒序进行的）
    let tempValue = getGroupValue(dataSource[dataSource.length - 1], groupKeys);
    // 记录需要合并单元格的数量
    let tempValueCount = 0;

    // 倒序遍历数组，以保证使用最前面一条数据合并单元格
    for (let index = dataSource.length - 1; index >= 0; index--) {
      rowSpanList[index] = 0;
      const groupValue = getGroupValue(dataSource[index], groupKeys);
      // 如果当前行的分组数据跟上一行一致，则将标记数量加一；否则将标记数量的当前值赋给上一条数据，并重置临时值和标记数量
      if(editRecordMap && editRecordMap[index]){ //如果当前行是编辑行
        rowSpanList[index + 1] = tempValueCount;
        tempValue = "";
        tempValueCount=1;
      }
      else if (groupValue === tempValue) {
        tempValueCount++;
      } else {
        rowSpanList[index + 1] = tempValueCount;
        tempValue = groupValue;
        tempValueCount = 1;
      }

      // 遍历到最后一行，将当前的标记数量赋给当前行
      if (index === 0) {
        rowSpanList[index] = tempValueCount;
      }
    }

    return rowSpanList;
  }

  /**
   * 根据分组字段列表生成当前数据行的分组值
   * @param {Object} 当前数据行
   * @param {Array} 分组字段列表
   * @returns {String} 拼装的当前数据行的分组值，例：record为{ age: 7, grade: '一年级', name: '小赵' }，groupKeys为['grade', 'age']，则拼装后的返回值为'一年级__$__7'
   */
  function getGroupValue(record, groupKeys) {
    const groupValueList = [];
    groupKeys.forEach(groupKey => {
      let val = record[groupKey]
      if (isArray(val)) {
        val = record[groupKey + '_labels']
      } else if (isObject(val)) {
        console.warn('警告表格列数据为object，可能导致行合并异常，列key为：'+ groupKey,val)
      }
      groupValueList.push(`${val}`);
    });
    return groupValueList.join('__$__');
  }

  /**
   * 将列表数据转换成树状数据
   * @param {Array} 原始的列表数据
   * @param {String|Number} 列表数据的唯一key
   * @param {String|Number} 列表数据转成树时的父级id
  */
  function convertListToTree(list, key, parentKey) {
    const clonedList = cloneDeep(list || []);

    // 遍历列表数据，生成树节点的map：key为列表数据的唯一key，value为列表当前行的数据
    const treeNodeMap = {};
    clonedList.forEach(item => {
      treeNodeMap[item[key]] = item;
    });

    const treeDataList = [];
    clonedList.forEach(item => {
      // 如果当前行数据的父级id不在树节点的map中，则当前数据为根节点数据，将其加入最终树形数据的列表；否则将其放入其父节点数据的children中
      if (!treeNodeMap[item[parentKey]]) {
        treeDataList.push(item);
      } else {
        if (!treeNodeMap[item[parentKey]].children) {
          treeNodeMap[item[parentKey]].children = [];
        }
        treeNodeMap[item[parentKey]].children.push(item);
      }
    });

    return treeDataList;
  }

  /**
   * 表格列宽伸缩处理，使用indexedDB缓存伸缩后的列宽度
   */
  const handleResizeColumn = (w, col, vid) => {
    col.width = w;
    
    UserTableRecords.saveTableRecords(col, localGet('al__UID'), vid)
    
  }
  /* ========================== 不同组件自定义的处理逻辑 ========================== */


  // ================================定制化逻辑========================================
</script>
<style lang="less" scoped>
  .page_root {
  width: 100%;
  height: 100%;
  overflow: auto;
  }
  .page_root :deep(.@{ant-prefix}-spin-nested-loading),
  .page_root :deep(.@{ant-prefix}-spin-container)
   {
      height: 100%;
  }
  .page_root :deep(.@{ant-prefix}-spin-container .@{ant-prefix}-table-wrapper)
   {
      display: flex;
      flex-flow: column nowrap;
      justify-content: flex-start;
  }
  .page_root :deep(.@{ant-prefix}-table)
   {
    flex: auto;
    overflow: auto;
  }
  .table-moreBtn_down {
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100px;
  }

  .table-moreBtn_menu :deep(.table-moreBtn_menu-item):hover {
    background: #ebf1ff;
  }

  /*  表格树结构样式处理，展开按钮层级增加*/
  :deep(.@{ant-prefix}-table-row-expand-icon) {
    z-index: 1;
  }
  /*  表格树结构 由于每个表格项采用自定义组件，使用绝对定位布局，开启树结构导致显示异常，暂时使用层级定位位置 */
  :deep(.@{ant-prefix}-table-row-level-1 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 15px !important;
    width: calc(100% - 15px);
  }
  :deep(.@{ant-prefix}-table-row-level-2 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 30px !important;
    width: calc(100% - 30px);
  }
  :deep(.@{ant-prefix}-table-row-level-3 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 45px !important;
    width: calc(100% - 45px);
  }
  :deep(.@{ant-prefix}-table-row-level-4 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 60px !important;
    width: calc(100% - 60px);
  }

  /* 穿梭框改变默认样式，为根据组件样式控制左右栏宽度。 */
  :deep(.@{ant-prefix}-transfer-list)
   {
      height: 100%;
      width: 50%;
  }
  .vid_62olged3y7{
      height:750px;
      overflow-x:hidden;
      overflow-y:auto;
      display:block;
      background-color:#FFFFFF
  }
  .vid_yyfck5bxnk{
      width:100%;
      display:block;
      margin-bottom:24px;
      background-color:#FFFFFF
  }
  .vid_xx40tochgv{
      width:100%;
      margin-bottom:16px;
      background-color:#FFFFFF
  }
  .vid_4jgr4uuzlq{
      padding-left:8px;
      font-weight:600;
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_dcjlk6hy6e{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px
  }
  .vid_dgxr8yy6g6{
      min-width:70px;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_6ttysl44kc{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_f6qkr3jz3o{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_w7rumc3uiw{
      min-width:70px;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_ti4ei79bia{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:500;
      color:rgba(38, 38, 38, 1);
      box-shadow:0px 0px 0px 0px
  }
  .vid_mu65ilv37p{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      padding-bottom:16px;
      box-shadow:0px 0px 0px 0px ;
      border-bottom-style:solid;
      border-bottom-width:1px;
      border-bottom-color:#D9D9D9
  }
  .vid_4eipq32dux{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_397qdux4m9{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_62csascnvm{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_bvvbenzf97{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_8tug59hbzy{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_0wb2ge9h1r{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_my8iyte2uf{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_w6gh74x0r5{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:600;
      color:rgba(56, 117, 255, 1)
  }
  .vid_4f1zmgdji2{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_j9zaqz7y79{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_zi5g5tyu7w{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_i0mpwjebyk{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_0d4vrdg5hv{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:600;
      color:rgba(56, 117, 255, 1)
  }
  .vid_y3mhnzfohy{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_71jceso1xn{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_q4d1mt1gqv{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_7gut4w6lbb{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_uyztrpdycb{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_15sym5unke{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_gzv1erfqnp{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_5343m59c2o{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_qhpxcp4j2j{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_q865svlhtw{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_2a4yq6jmn8{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:600;
      color:rgba(56, 117, 255, 1)
  }
  .vid_jo3h1260u5{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_jkwyfxa4lp{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_s6rkdpln3p{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_oxwis6zxco{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_0xvve1l4or{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_mchyknofaw{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_nog29pj7k6{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_lkj2sewj8o{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_8fslc539he{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_n38wcai14l{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_vf5vni0vmp{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_64slkgm8na{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_tr7ch4as2e{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_tgsc4k7qm9{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_7wzwq00m9t{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_mc3n2t4o0w{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_j5ahn1jfxk{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_2tbl5udtlz{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_zahfjnowu7{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:16px;
      padding-bottom:16px;
      box-shadow:0px 0px 0px 0px ;
      border-bottom-style:solid;
      border-bottom-width:1px;
      border-bottom-color:#D9D9D9
  }
  .vid_kjuwlbk70j{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_a7ysowlddd{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_9lrivxpors{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_e6xic6hmii{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_pvemgtm8vv{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_64tznuhtwq{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_l519g9lsye{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_4ygyyobw2x{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_yfnu4gndpt{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_8pxb6mc0ya{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_ie8qft8qgg{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_69wckbzuxg{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_iha8nm0g1w{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_8hocw12vk9{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_98ip2hnivh{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_rqmumk9zu7{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_okquk3p6ng{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_euh0mb45a6{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_u3flmrju37{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_uqvgl0mhiq{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_3qasvodetd{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_fbjrcrsc9i{
      min-width:24px;
      display:flex;
      flex-direction:row;
      flex-wrap:undefined;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_b2w81k3hm4{
      width:100%;
      box-shadow:0px 0px 0px 0px
  }
  .vid_wbb0uy2b92{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_nom1lh7ici{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      box-shadow:0px 0px 0px 0px
  }
  .vid_mmgeuq9y32{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_16w594bncd{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_k0j0xg9b2m{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_k1hzxej9qn{
      font-weight:500;
      color:rgba(38, 38, 38, 1)
  }
  .vid_y3wtnpd02n{
      display:block;
      margin-bottom:24px;
      background-color:#FFFFFF
  }
  .vid_8vn3vho168{
      width:100%;
      padding-bottom:16px;
      background-color:#FFFFFF
  }
  .vid_i5bnm830mb{
      padding-left:8px;
      font-weight:600;
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_1g9h9a8ocy{
      display:block
  }
  .vid_fuymcrvt67{
      height:40px;
      display:flex;
      align-items:center;
      flex-wrap:undefined;
      background-color:#3875FF
  }
  .vid_qqtizh2pw2{
      height:32px;
      display:flex;
      align-items:center;
      flex-wrap:undefined;
      padding-left:24px;
      font-weight:600;
      color:rgba(255, 255, 255, 1);
      font-size:14px;
      border-left-style:solid;
      border-left-width:1px;
      border-left-color:#FFFFFF
  }
  .vid_2oevito689{
      height:32px;
      display:flex;
      align-items:center;
      flex-wrap:undefined;
      padding-left:24px;
      font-weight:600;
      color:rgba(255, 255, 255, 1);
      font-size:14px;
      border-left-style:solid;
      border-left-width:1px;
      border-left-color:#FFFFFF
  }
  .vid_st624pev0q{
      padding-left:24px;
      font-weight:600;
      color:rgba(255, 255, 255, 1);
      font-size:14px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_zh1csqfvg1{
      min-height:80px;
      overflow-y:auto;
      display:flex;
      flex-wrap:undefined;
      padding-top:8px;
      background-color:#FFFFFF;
      border-bottom-style:solid;
      border-bottom-width:1px;
      border-bottom-color:#D9D9D9
  }
  .vid_sy10f8jrux{
      width:100%;
      overflow-y:auto;
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      flex-wrap:undefined;
      box-shadow:0px 0px 0px 0px
  }
  .vid_iy0rhsah4m{
      margin-left:8px
  }
  .vid_sgllr4zga5{
      width:100%;
      overflow-y:auto;
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      flex-wrap:undefined;
      box-shadow:0px 0px 0px 0px
  }
  .vid_tnmfd8tdof{
      display:block;
      margin-left:8px
  }
  .vid_tjdzmlymfo{
      width:100%;
      overflow-y:auto;
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      flex-wrap:undefined
  }
  .vid_zf1rtuhzkj{
      margin-left:8px
  }
  .vid_5cn718xsru{
      overflow-y:auto;
      display:block;
      background-color:#FFFFFF
  }
  .vid_uv65i1f8qj{
      width:100%;
      margin-bottom:16px;
      background-color:#FFFFFF
  }
  .vid_a5bbpto454{
      padding-left:8px;
      font-weight:600;
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-thead) > tr {
      height: 40px;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-thead) > tr > th {
    background: #3875FF;
    font-size: 14px;
    font-family: arial, helvetica, "microsoft yahei";
    font-weight: 600;
    color: #FFFFFF;
    border-bottom:1px solid #D9D9D9;
    padding: 8px 16px;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr:not(:last-child) > th {
    border-bottom:1px solid #D9D9D9;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th {
    border-right:1px solid #D9D9D9;
  }
  /* 将表格自带的左边框取消，方便设置表头边框颜色和内容边框颜色 */
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container {
    border-left: none;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th[colstart='0']:first-child {
    border-left:1px solid #D9D9D9;
  }
  /* 开启粘性表头后，表格结构会发生变化 需另外处理 */
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-header table {
    border-top:1px solid #D9D9D9;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
    border-top:1px solid #D9D9D9;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
      background: #D9D9D9;
      width: 1px;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-cell-scrollbar) {
      box-shadow: none;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-tbody) tr {
    height: 40px;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-tbody) tr > td {
    font-size: 14px;
    font-family: arial, helvetica, "microsoft yahei";
    font-weight: 400;
    color: #262626;
    border-bottom:1px solid #D9D9D9;
    padding: 0 16px;
    word-break: break-all;
    .cell-wrapper {
      padding: 0 16px;
    }
  }

  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-tbody) tr > td .cell-wrapper {
    padding: 0 16px;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
    padding: 0;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
    padding: 0 30px 0 0;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
    padding: 0;
  }
  .vid_ot922v6tj4 :deep(.table-striped-odd) td {
    background-color: #FFFFFF;
  }
  .vid_ot922v6tj4 :deep(.table-striped-even) td {
    background-color: #F8FAFC;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td {
    border-right:1px solid #D9D9D9;
  }
  .vid_ot922v6tj4 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td:first-child {
    border-left:1px solid #D9D9D9;
  }
  .vid_ot922v6tj4{
      width:100%;
      background-color:#FFFFFF
  }
  .vid_ot922v6tj4:active{
      width:100%
  }
  .vid_ot922v6tj4:focus{
      width:100%
  }
  .vid_ot922v6tj4:hover{
      width:100%
  }
  .vid_c0vz1385g3{
      width:100%;
      display:block;
      margin-bottom:16px;
      padding-top:16px;
      padding-right:24px;
      padding-bottom:16px;
      padding-left:24px;
      background-color:#FFFFFF
  }
  .vid_2rmntbmepb{
      padding-left:8px;
      font-weight:600;
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_gkppoqyw88{
      margin-top:8px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_8qd672au1f{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_c3t7z3pefv{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_9decjcxfpg{
      font-weight:500
  }
  .vid_8c45ajyo39{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_p12vkt7y86{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_jvb6q14f3r{
      font-weight:500
  }
  .vid_6rb4youa5q{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_7monx6ej2h{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_hqtla9243d{
      font-weight:500
  }
  .vid_voagrgzvao{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_p1q0dbj4or{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_zyfwif40qx{
      font-weight:500
  }
  .vid_qi92qa5xqj{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_px7ctc6qix{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(38, 38, 38, 1)
  }
  .vid_hpvmzr0j6n{
      height:40px;
      overflow-y:auto;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_fjpy895zs6{
      font-weight:500
  }
  .vid_egbbcjmryg{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_blslz90auk{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(38, 38, 38, 1)
  }
  .vid_ukxhcetfc9{
      height:40px;
      overflow-y:auto;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_e98nw1y9yq{
      font-weight:500
  }

  :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
   padding: 0;
  }
</style>